From b4ddb130c7d3d46858b36c40a20c5a50a520b5ee Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Thu, 25 Apr 2002 21:44:33 +0000 Subject: [PATCH] Fixes #74206. Thu Apr 25 23:49:01 2002 Kristian Rietveld Fixes #74206. * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), (_gtk_tree_view_column_get_editable_cell): remove a space which made the code look ugly (_gtk_tree_view_column_count_special_cells): new function, (gtk_tree_view_column_cell_process_action): if there's only one activatable cell, the whole column will activate that renderer. --- ChangeLog | 13 +++++++++++++ ChangeLog.pre-2-10 | 13 +++++++++++++ ChangeLog.pre-2-2 | 13 +++++++++++++ ChangeLog.pre-2-4 | 13 +++++++++++++ ChangeLog.pre-2-6 | 13 +++++++++++++ ChangeLog.pre-2-8 | 13 +++++++++++++ gtk/gtktreeprivate.h | 1 + gtk/gtktreeviewcolumn.c | 34 +++++++++++++++++++++++++++++++--- 8 files changed, 110 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 951e5a4fbe..0d53ea231f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +Thu Apr 25 23:49:01 2002 Kristian Rietveld + + Fixes #74206. + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells + + * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), + (_gtk_tree_view_column_get_editable_cell): remove a space which made + the code look ugly + (_gtk_tree_view_column_count_special_cells): new function, + (gtk_tree_view_column_cell_process_action): if there's only one + activatable cell, the whole column will activate that renderer. + Thu Apr 25 23:36:55 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 951e5a4fbe..0d53ea231f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,16 @@ +Thu Apr 25 23:49:01 2002 Kristian Rietveld + + Fixes #74206. + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells + + * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), + (_gtk_tree_view_column_get_editable_cell): remove a space which made + the code look ugly + (_gtk_tree_view_column_count_special_cells): new function, + (gtk_tree_view_column_cell_process_action): if there's only one + activatable cell, the whole column will activate that renderer. + Thu Apr 25 23:36:55 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 951e5a4fbe..0d53ea231f 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,16 @@ +Thu Apr 25 23:49:01 2002 Kristian Rietveld + + Fixes #74206. + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells + + * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), + (_gtk_tree_view_column_get_editable_cell): remove a space which made + the code look ugly + (_gtk_tree_view_column_count_special_cells): new function, + (gtk_tree_view_column_cell_process_action): if there's only one + activatable cell, the whole column will activate that renderer. + Thu Apr 25 23:36:55 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 951e5a4fbe..0d53ea231f 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,16 @@ +Thu Apr 25 23:49:01 2002 Kristian Rietveld + + Fixes #74206. + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells + + * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), + (_gtk_tree_view_column_get_editable_cell): remove a space which made + the code look ugly + (_gtk_tree_view_column_count_special_cells): new function, + (gtk_tree_view_column_cell_process_action): if there's only one + activatable cell, the whole column will activate that renderer. + Thu Apr 25 23:36:55 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 951e5a4fbe..0d53ea231f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,16 @@ +Thu Apr 25 23:49:01 2002 Kristian Rietveld + + Fixes #74206. + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells + + * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), + (_gtk_tree_view_column_get_editable_cell): remove a space which made + the code look ugly + (_gtk_tree_view_column_count_special_cells): new function, + (gtk_tree_view_column_cell_process_action): if there's only one + activatable cell, the whole column will activate that renderer. + Thu Apr 25 23:36:55 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 951e5a4fbe..0d53ea231f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,16 @@ +Thu Apr 25 23:49:01 2002 Kristian Rietveld + + Fixes #74206. + + * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells + + * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell), + (_gtk_tree_view_column_get_editable_cell): remove a space which made + the code look ugly + (_gtk_tree_view_column_count_special_cells): new function, + (gtk_tree_view_column_cell_process_action): if there's only one + activatable cell, the whole column will activate that renderer. + Thu Apr 25 23:36:55 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search diff --git a/gtk/gtktreeprivate.h b/gtk/gtktreeprivate.h index 230b5378f8..8abd5657b3 100644 --- a/gtk/gtktreeprivate.h +++ b/gtk/gtktreeprivate.h @@ -317,6 +317,7 @@ void _gtk_tree_view_column_autosize (GtkTreeView *tre gboolean _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column); GtkCellRenderer *_gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column); +gint _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column); GtkTreeSelection* _gtk_tree_selection_new (void); GtkTreeSelection* _gtk_tree_selection_new_with_tree_view (GtkTreeView *tree_view); diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c index d5db622c56..4063a8c214 100644 --- a/gtk/gtktreeviewcolumn.c +++ b/gtk/gtktreeviewcolumn.c @@ -1046,7 +1046,7 @@ _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column) { GList *list; - for (list = column->cell_list; list; list = list ->next) + for (list = column->cell_list; list; list = list->next) if (((GtkTreeViewColumnCellInfo *)list->data)->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE) return TRUE; @@ -1059,7 +1059,7 @@ _gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column) { GList *list; - for (list = column->cell_list; list; list = list ->next) + for (list = column->cell_list; list; list = list->next) if (((GtkTreeViewColumnCellInfo *)list->data)->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE) return ((GtkTreeViewColumnCellInfo *)list->data)->cell; @@ -1067,6 +1067,24 @@ _gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column) return NULL; } +gint +_gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column) +{ + gint i = 0; + GList *list; + + for (list = column->cell_list; list; list = list->next) + { + GtkTreeViewColumnCellInfo *cellinfo = list->data; + + if (cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE || + cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE) + i++; + } + + return i; +} + /* Public Functions */ @@ -2418,8 +2436,18 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, if (event) { - if (real_cell_area.x <= ((GdkEventButton *)event)->x && + if (_gtk_tree_view_column_count_special_cells (tree_column) == 1) + { + /* only 1 activatably cell -> whole column can activate */ + if (cell_area->x <= ((GdkEventButton *)event)->x && + cell_area->x + cell_area->width > ((GdkEventButton *)event)->x) + try_event = TRUE; + } + else if (real_cell_area.x <= ((GdkEventButton *)event)->x && real_cell_area.x + real_cell_area.width > ((GdkEventButton *)event)->x) + /* only activate cell if the user clicked on an individual + * cell + */ try_event = TRUE; } else /* if (info->has_focus)*/ -- 2.30.2